Segment u kojem je RST zastavica postavljena na
1 bezuslovno abortira konekciju.
RST segment se ne potvrđuje, a obje strane terminiraju
vezu.
RST segment za uspostavljenu vezu se uzima u obzir samo
ukoliko je seq# unutar očekivanog prozora (Linux traži
tačan slijedeći seq#)
RST se šalje:
kada se pokuša ostvariti konekcija na port na kojem ne sluša niti
jedna aplikacija.
primi TCP segment sa invalidnim seq# ili
acq# koji ne pripada niti jednoj vezi ili pripada prethodno
terminiranoj vezi.
Persist tajmer
Kada primalac reklamira prazan rwnd
pošiljac treba da obustavi slanje segmenata,
aktivira persit tajmer i čeka na duplikat ACK segment
sa novim rwnd.
u slučaju da persist tajmer istekne prije primitka
ACK-a, šalje se window probe segment koji ima
jedan samo jedan bajt podataka.
Persist tajmer nakon rwnd=0
TCP ekstenzije
TCP zaglavlje je varijabilne dužine i dozvoljava upotrebu opcionih
polja koja se definiraju i čije se značenje interpretira kroz ekstenzije
TCP protokola.
Opcije moraju biti poravnate na granicama od 4-bajta pomoću tzv.
nop opcije.
Većina opcija se koristi u procesu uspostave konkecije.
MSS - opcija definira maksimalni MSS koje
strana želi da prima.
Window Scale - opcija definira broj n kojim druga strana treba da skalira rwnd tj. prava veličina prijemnog bafera
postaje rwnd⋅2n
Selective Acknowledgment Permitted - opcija putem koje
strana signalizira da prihvata SACK (selektivni
ACK), opciju koja se aktivira i koristi dok traje
komunikacija u toku konekcije.
Selective Acknowledgment - omogućava strani da u
duplikat ACK segmentu može precizirati eventualno primljene
homogene blokove bajta van kontinualne sekvence (tzv.
SACK), kako se isti ne bi slali po retransmisiji
nedostajućih blokova.
TCP opcijePrimjer upotrebe
SACK
Zagušenja u mreži
Slanje paketa preko kapaciteta mreže izaziva:
velika kašnjenja u dostavi.
dostave duplih paketa zbog preuranjenih slanja nepotvrđenih
segmenata.
TCP pokušava smanjiti zagušenje kontrolom brzine slanja segmenata na
strani pošiljaoca.
pored rwnd,
veličine prijemnog bafera koju reklamira druga strana u konekciji, u
obzir se uzima i cwnd,
tzv. congestion window, veličina koju uspostavlja
pošiljalac i koja se konstantno mijenja.
U svakom trenutku mora vrijediti relacija: lbs−lba≤min(rwnd,cwnd)
gdje je:
lbs - posljednji poslani bajt,
lba - posljednji potvrđeni
bajt.
Različite verzije TCP-a na različite načine mijenjaju cwnd:
u opštem slučaju cwnd raste
aditivno a opada multiplikativno (AIMD
- Additive Increase Multiplicative Decrease)
Rast cwnd se događa prilikom
prijema ACK-ova.
Opadanje cwnd se događa prilikom
detekciju gubitka paketa
na različite načine se tretira dulikat ACK i istek
perioda tajmera.
Detaljni algoritam promjene cwnd se
najlakše demonstrira u formi FSM-a
FSM za kontrolu cwnd kod Reno TCP implementacijePrimjer promjene cwnd u vremenu